package ooday01;
/** 学生类 */
public class Student {
    //成员变量(作用范围：整个类)
    String name;
    int age;
    String className;
    String stuId;

    /** 构造方法 */
    //用于给对象赋初始值，创建对象时被自动调用，若自己不写构造方法，默认提供一个无参构造方法，写了构造方法就不再默认提供，构造方法可以重载
    Student(String name,int age,String className,String stuId){ //局部变量(作用范围：当前方法中)
        //成员变量与局部变量可以同名，使用时默认采取就近原则，成员变量与局部变量同名时，若想访问成员变量，this不能省略
        //成员变量    局部变量
        this.name = name;
        this.age = age;
        this.className = className;
        this.stuId = stuId;
    }

    /** 构造方法的重载 */
    Student(){
    }
    Student(String name,int age){
        this.name = name;
        this.age = age;
    }

    //方法
    //this只能用在方法中，方法中访问成员变量之前默认有个this,this指代当前对象，谁调方法，this指的就是谁
    void study(){
        System.out.println(this.name+"在学习...");
    }

    void sayHi(){
        System.out.println("大家好，我叫"+this.name+",今年"+this.age+"岁了，所在班级为："+this.className+"，学号为："+this.stuId);
    }

    void playWith(String anotherName){
        System.out.println(this.name+"正在和"+anotherName+"一起玩...");
    }
}
